﻿// JavaScript Document
var validateRegExp = {
    decmal: "^([+-]?)\\d*\\.\\d+$",	//浮点数
    decmal1: "^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*$",	//正浮点数
    decmal2: "^-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*)$",	//负浮点数
    decmal3: "^-?([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0)$",	//浮点数
    decmal4: "^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0$",	//非负浮点数（正浮点数 + 0）
    decmal5: "^(-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*))|0?.0+|0$",	//非正浮点数（负浮点数 + 0）
    intege: "^-?[1-9]\\d*$",	//整数
    intege1: "^[1-9]\\d*$",	//正整数
    intege2: "^-[1-9]\\d*$",	//负整数
    num: "^([+-]?)\\d*\\.?\\d+$",	//数字
    num1: "^[1-9]\\d*|0$",	//正数（正整数 + 0）
    num2: "^-[1-9]\\d*|0$",	//负数（负整数 + 0）		
    ascii: "^[\\x00-\\xFF]+$",	//仅ACSII字符
    chinese: "^[\\u4e00-\\u9fa5]+$",	//仅中文
    color: "^[a-fA-F0-9]{6}$",	//颜色
    date: "^\\d{4}(\\-|\\/|\.)\\d{1,2}\\1\\d{1,2}$",	//日期
    email: "^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$",	//邮件
    idcard: "^[1-9]([0-9]{14}|[0-9]{17})$",	//身份证
    ip4: "^(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)$",	//ip地址
    letter: "^[A-Za-z]+$",	//字母
    letter_l: "^[a-z]+$",	//小写字母
    letter_u: "^[A-Z]+$",	//大写字母
    mobile: "^0?(13|15|18)[0-9]{9}$",	//手机
    notempty: "^\\S+$",	//非空
    password: "^[A-Za-z0-9_-]+$",	//密码
    picture: "(.*)\\.(jpg|bmp|gif|ico|pcx|jpeg|tif|png|raw|tga)$",	//图片
    qq: "^[1-9]*[1-9][0-9]*$",	//QQ号码
    rar: "(.*)\\.(rar|zip|7zip|tgz)$",	//压缩文件
    tel: "^[0-9\-()（）]{7,18}$",	//电话号码的函数(包括验证国内区号,国际区号,分机号)
    url: "^(http[s]?:\\/\\/)?([\\w-]+\\.)+[\\w-]+([\\w-./?%&=]*)?$",	//url
    shorturl: "^([\\w-]+\\.)+[\\w-]+([\\w-./?%&=]*)?$",	//url, 不带http://
    username: "^[\\.A-Za-z0-9_-]+$",	//用户名
    deptname: "^[A-Za-z0-9_()（）\\-\\u4e00-\\u9fa5]+$",	//单位名
    zipcode: "^\\d{6}$",	//邮编
    port: "^\\d{1,5}$",	//端口
    ftppassword: "^[^\\u4e00-\\u9fa5]+$",
    realname: "^[A-Za-z\\u4e00-\\u9fa5]+$",  // 真实姓名
    companyname: "^[A-Za-z0-9_()（）\\-\\u4e00-\\u9fa5]+$",
    companyaddr: "^[A-Za-z0-9_()（）\\#\\-\\u4e00-\\u9fa5]+$",
    companysite: "^http[s]?:\\/\\/([\\w-]+\\.)+[\\w-]+([\\w-./?%&#=]*)?$"
};

//验证规则
var validateRules = {
    isNull: function (str) {
        return (str == "" || typeof str != "string");
    },
    betweenLength: function (str, _min, _max) {
        return (str.length >= _min && str.length <= _max);
    },
    isPwd: function (str) {
        return new RegExp(validateRegExp.password).test(str);
    },
    isPwd2: function (str1, str2) {
        return (str1 == str2);
    },
    isEmail: function (str) {
        return new RegExp(validateRegExp.email).test(str);
    },
    isTel: function (str) {
        return new RegExp(validateRegExp.tel).test(str);
    },
    isMobile: function (str) {
        return new RegExp(validateRegExp.mobile).test(str);
    },
    isUrl: function (str) {
        return new RegExp(validateRegExp.shorturl).test(str);
    },
    isFTP: function (str) {
        return (new RegExp(validateRegExp.ip4).test(str)) || (new RegExp(validateRegExp.shorturl).test(str));
    },
    isPort: function (str) {
        return new RegExp(validateRegExp.port).test(str);
    },
    isUsername: function (str) {
        return new RegExp(validateRegExp.username).test(str);
    },
    isFtpPassword: function (str) {
        return new RegExp(validateRegExp.ftppassword).test(str);
    },
    checkType: function (element) {
        return (element.attr("type") == "checkbox" || element.attr("type") == "radio" || element.attr("rel") == "select");
    },
    isChinese: function (str) {
        return new RegExp(validateRegExp.chinese).test(str);
    },
    isRealName: function (str) {
        return new RegExp(validateRegExp.realname).test(str);
    },
    isDeptname: function (str) {
        return new RegExp(validateRegExp.deptname).test(str);
    },
    isCompanyname: function (str) {
        return new RegExp(validateRegExp.companyname).test(str);
    },
    isCompanyaddr: function (str) {
        return new RegExp(validateRegExp.companyaddr).test(str);
    },
    isCompanysite: function (str) {
        return new RegExp(validateRegExp.companysite).test(str);
    }
};